home *** CD-ROM | disk | FTP | other *** search
- incdir "include:"
- include "rtgmaster/rtgmaster.i"
- include "rtgmaster/rtgsublibs.i"
- include "rtgmaster/rtgmaster_lib.i"
- include "rtgmaster/rtgc2p.i"
- include "exec/memory.i"
- mc68020
- start:
- move.l $4,a6
- movem.l d0-d7/a0-a6,-(sp)
- movem.l (sp)+,d0-d7/a0-a6
- lea rtgname,a1
- moveq #0,d0
- jsr -408(a6)
- move.l d0,rtgbase
- move.l #315392,d0
- move.l #MEMF_FAST+MEMF_CLEAR,d1
- jsr -198(a6)
- move.l d0,flames
- add.l #4096,d0
- move.l d0,new_flames
- add.l #4096,d0
- move.l d0,MapB
- move.l #56,d0
- move.l #MEMF_PUBLIC+MEMF_CLEAR,d1
- jsr -198(a6)
- move.l d0,timereq
- add.l #40,d0
- move.l d0,t1
- add.l #8,d0
- move.l d0,t2
- move.l #$FFFFFFFF,d0
- jsr -330(a6)
- move.l d0,signal
- lea timername,a0
- move.l #2,d0
- move.l timereq,a1
- move.l #0,d1
- jsr -444(a6)
- move.l timereq,a0
- add.l #20,a0
- move.l (a0),timerbase
- move.l rtgbase,a6
- lea srtags,a0
- jsr _LVORtgScreenModeReq(a6)
- move.l d0,smode
- move.l smode,a0
- lea sctags,a1
- jsr _LVOOpenRtgScreen(a6)
- move.l d0,rtgscreen
- move.l rtgscreen,a0
- lea tags,a1
- jsr _LVOGetRtgScreenData(a6)
- cmp.l #grd_PLANAR,pixel
- bne chunky
- move.l rtgscreen,a0
- lea table,a1
- jsr _LVOLoadRGBRtg(a6)
- move.l rtgscreen,a0
- jsr _LVOLockRtgScreen(a6)
- move.l d0,MapA
-
- mainloop:
- move.l a6,-(sp)
- move.l timerbase,a6
- move.l t1,a0
- jsr -60(a6)
- move.l (sp)+,a6
- move.l flames,a0
- move.l a0,a1
- add.l #64,a1
- add.l #96,a0
- move #41*16,d0
- sub #1,d0
- copyloop1:
- move.w (a0)+,(a1)+
- dbra d0,copyloop1
- move.l a0,a2
- move #3,d1
- add.l #6,a2
- puthotspots:
- move.l a2,a0
- move.l #20,d0
- jsr Random
- add.l d0,a0
- move.l #190,d0
- jsr Random2
- move.w d0,(a0)
- dbra d1,puthotspots
- move.w #1,x
- move.w #1,y
- flameloop:
- move.l flames,a0
- move.l new_flames,a1
- sub.l d0,d0
- move.w x,d0
- add.l d0,a0
- add.l d0,a1
- sub.l d0,d0
- move.w y,d0
- lsl.w #5,d0
- add.l d0,a0
- add.l d0,a1
- sub.l #1,a0
- sub.l d3,d3
- move.b (a0),d3 ; (x-1/y)
- add.l #2,a0
- add.b (a0),d3 ; (x+1/y)
- sub.l #32,a0
- add.b (a0),d3 ; (x+1/y-1)
- sub.l #1,a0
- add.b (a0),d3 ; (x/y-1)
- sub.l #1,a0
- add.b (a0),d3 ; (x-1/y-1)
- add.l #64,a0
- add.b (a0),d3 ; (x-1/y+1)
- add.l #1,a0
- add.b (a0),d3 ; (x/y+1)
- add.l #1,a0
- add.b (a0),d3 ; (x+1/y+1)
- lsr.b #3,d3
- move.b d3,(a1)
- add.w #1,x
- cmp #32,x
- bne flameloop
- move.w #1,x
- add.w #1,y
- cmp #44,y
- bne flameloop
-
- move.l new_flames,a0
- move.l flames,a1
- move #44,d0
- sub #1,d0
- copyloop2:
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- dbra d0,copyloop2
-
- teste:
- sub.l d5,d5
- move.l Width,d6
- move.l d6,d7
- mulu.l #40,d6
- mulu.l Height,d7
- plotloopouter:
- move.l #0,d4
- plotloop:
- move.l flames,a0
- move.l MapB,a1
- add.l d5,a1
- add d4,a1
- move #39,d2
- add.l #96,a0
- plotit:
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- add.l Width,a1
- sub.l #32,a1
- dbra d2,plotit
- add.l #32,d4
- cmp.l Width,d4
- bls plotloop
- add.l d6,d5
- cmp.l d7,d5
- bls plotloopouter
- move.l ticks,d0
- move.l MapB,a0
- jsr _DrawMeter
- move.l rtgscreen,a0
- move.l MapA,a1
- move.l MapB,a2
- move.l signal,d0
- move.l #0,d1
- move.l #0,d2
- move.l Width,d3
- move.l Height,d4
- move.l #c2p_Selected,d5
- jsr _LVOCallRtgC2P(a6)
- jsr stopclock
- move.l d0,ticks
- btst #6,$bfe001
- bne mainloop
-
- exit:
- move.l rtgscreen,a0
- jsr _LVOUnlockRtgScreen(a6)
- move.l rtgscreen,a0
- jsr _LVOCloseRtgScreen(a6)
- move.l smode,a0
- jsr _LVOFreeRtgScreenModeReq(a6)
- move.l rtgbase,a1
- move.l $4,a6
- jsr -414(a6)
- move.l signal,d0
- jsr -336(a6)
- move.l flames,a1
- move.l #315392,d0
- move.l $4,a6
- jsr -210(a6)
- move.l timereq,a1
- jsr -450(a6)
- move.l timereq,a1
- move.l #56,d0
- jsr -210(a6)
- lea text,a0
- add.l #12,a0
- move.l ticks2,d0
- divu.l ticks3,d0
- move.l d0,ticks
- move.l ticks,d0
- divu.l #1000,d0
- move.l d0,d3
- mulu.l #1000,d3
- add.l #'0',d0
- move.l d0,(a0)+
- move.l ticks,d0
- sub.l d3,d0
- divu.l #100,d0
- move.l d0,d1
- mulu.l #100,d1
- add.l #'0',d0
- move.b d0,(a0)+
- move.l ticks,d0
- sub.l d1,d0
- sub.l d3,d0
- divu.l #10,d0
- move.l d0,d2
- mulu.l #10,d2
- add.l #'0',d0
- move.b d0,(a0)+
- move.l ticks,d0
- sub.l d1,d0
- sub.l d2,d0
- sub.l d3,d0
- divu.l #1,d0
- add.l #'0',d0
- move.b d0,(a0)+
- lea dosname,a1
- moveq #0,d0
- jsr -408(a6)
- move.l d0,a6
- jsr -60(a6)
- move.l d0,d1
- move.l d0,d5
- move.l #text,d2
- move.l #texte-text,d3
- jsr -48(a6)
- move.l d5,d1
- move.l #text2,d2
- move.l #texte2-text2,d3
- jsr -48(a6)
- move.l a6,a1
- move.l $4,a6
- jsr -414(a6)
- rts
- ticks: dc.l 0
- ticks2: dc.l 0
- ticks3: dc.l 0
- _DrawMeter:
- move.l ticks,d0
- dl:
- move.w #$0700,(a0)+
- dbra d0,dl
- rts
- stopclock:
- move.l a6,-(sp)
- move.l timerbase,a6
- move.l t2,a0
- jsr -60(a6)
- move.l d0,d1
- move.l t2,a0
- move.l t1,a1
- move.l 4(a0),d0
- sub.l 4(a1),d0
- cmp.l #0,d0
- beq raus
- divu.l d0,d1
- move.l d1,d0
- add.l d0,ticks2
- add.l #1,ticks3
- raus:
- move.l (sp)+,a6
- rts
- t1: dc.l 0
- t2: dc.l 0
- timereq: dc.l 0
- chunky:
- move.l rtgscreen,a0
- lea tags,a1
- jsr _LVOGetRtgScreenData(a6)
- move.l rtgscreen,a0
- lea table,a1
- jsr _LVOLoadRGBRtg(a6)
- move.l rtgscreen,a0
- jsr _LVOLockRtgScreen(a6)
- move.l d0,MapA
- mainloop2:
- move.l a6,-(sp)
- move.l timerbase,a6
- move.l t1,a0
- jsr -60(a6)
- move.l (sp)+,a6
- move.l flames,a0
- move.l a0,a1
- add.l #64,a1
- add.l #96,a0
- move #41*16,d0
- sub #1,d0
- copyloop12:
- move.w (a0)+,(a1)+
- dbra d0,copyloop12
- move.l a0,a2
- move #3,d1
- add.l #6,a2
- puthotspots2:
- move.l a2,a0
- move.l #20,d0
- jsr Random
- add.l d0,a0
- move.l #190,d0
- jsr Random2
- move.w d0,(a0)
- dbra d1,puthotspots2
- move.w #1,x
- move.w #1,y
- flameloop2:
- move.l flames,a0
- move.l new_flames,a1
- sub.l d0,d0
- move.w x,d0
- add.l d0,a0
- add.l d0,a1
- sub.l d0,d0
- move.w y,d0
- lsl.w #5,d0
- add.l d0,a0
- add.l d0,a1
- sub.l #1,a0
- sub.l d3,d3
- move.b (a0),d3 ; (x-1/y)
- add.l #2,a0
- add.b (a0),d3 ; (x+1/y)
- sub.l #32,a0
- add.b (a0),d3 ; (x+1/y-1)
- sub.l #1,a0
- add.b (a0),d3 ; (x/y-1)
- sub.l #1,a0
- add.b (a0),d3 ; (x-1/y-1)
- add.l #64,a0
- add.b (a0),d3 ; (x-1/y+1)
- add.l #1,a0
- add.b (a0),d3 ; (x/y+1)
- add.l #1,a0
- add.b (a0),d3 ; (x+1/y+1)
- lsr.b #3,d3
- move.b d3,(a1)
- add.w #1,x
- cmp #32,x
- bne flameloop2
- move.w #1,x
- add.w #1,y
- cmp #44,y
- bne flameloop2
-
- move.l new_flames,a0
- move.l flames,a1
- move #44,d0
- sub #1,d0
- copyloop22:
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- dbra d0,copyloop22
-
- teste2:
- sub.l d5,d5
- move.l Width,d6
- move.l d6,d7
- mulu.l #40,d6
- mulu.l Height,d7
- plotloopouter2:
- move.l #0,d4
- plotloop2:
- move.l flames,a0
- move.l MapA,a1
- add.l d5,a1
- add d4,a1
- move #39,d2
- add.l #96,a0
- plotit2:
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- add.l Width,a1
- sub.l #32,a1
- dbra d2,plotit2
- add.l #32,d4
- cmp.l Width,d4
- bls plotloop2
- add.l d6,d5
- cmp.l d7,d5
- bls plotloopouter2
- jsr stopclock
- move.l d0,ticks
- move.l MapA,a0
- jsr _DrawMeter
- btst #6,$bfe001
- bne mainloop2
- bra exit
- Random:
- clr.l d0
- move.b $dff006,d0
- ext.w d0
- ext.l d0
- and.l #31,d0
- cmp.l #20,d0
- bge Random
- rts
- Random2:
- clr.l d0
- move.b $dff006,d0
- ext.w d0
- ext.l d0
- cmp.l #190,d0
- bge Random
- rts
- rtgname: dc.b 'rtgmaster.library',0
- timername: dc.b 'timer.device',0
- dosname: dc.b 'dos.library',0
- text: dc.b 'fps value : ',0
- texte:
- text2: dc.b 10,13
- texte2:
- even
- timerbase: dc.l 0
- rtgbase:
- dc.l 0
- smode:
- dc.l 0
- MapA:
- dc.l 0
- srtags:
- dc.l smr_MinWidth,320
- dc.l smr_MaxWidth,1024
- dc.l smr_MinHeight,200
- dc.l smr_MaxHeight,768
- dc.l smr_ChunkySupport,512
- dc.l smr_PlanarSupport,-1
- dc.l 0,0
- sctags:
- dc.l 0,0
- tags:
- dc.l grd_Width
- Width:
- dc.l 0
- dc.l grd_Height
- Height:
- dc.l 0
- dc.l grd_PixelLayout
- pixel:
- dc.l 0,0,0
-
- rtgscreen:
- dc.l 0
- signal:
- dc.l 0
- table:
- dc.w 40,0
- tablemain:
- dc.l 0,0,0,$20202020,0,0,$40404040,0,0,$60606060,0,0,$80808080,0,0,$A0A0A0A0,0,0,$C0C0C0C0,0,0,$E0E0E0E0,0,0
- dc.l $F0F0F0F0,0,0,$F0F0F0F0,$10101010,0,$F0F0F0F0,$20202020,0,$F0F0F0F0,$30303030,0,$F0F0F0F0,$40404040,0,$F0F0F0F0,$50505050,0,$F0F0F0F0,$60606060,0,$F0F0F0F0,$70707070,0
- dc.l $F0F0F0F0,$80808080,0,$F0F0F0F0,$90909090,0,$F0F0F0F0,$A0A0A0A0,0,$F0F0F0F0,$B0B0B0B0,0,$F0F0F0F0,$C0C0C0C0,0,$F0F0F0F0,$D0D0D0D0,0,$F0F0F0F0,$E0E0E0E0,0,$F0F0F0F0,$F0F0F0F0,0
- dc.l $F0F0F0F0,$F0F0F0F0,0,$F0F0F0F0,$F0F0F0F0,$10101010,$F0F0F0F0,$F0F0F0F0,$20202020,$F0F0F0F0,$F0F0F0F0,$30303030,$F0F0F0F0,$F0F0F0F0,$40404040,$F0F0F0F0,$F0F0F0F0,$50505050,$F0F0F0F0,$F0F0F0F0,$60606060,$F0F0F0F0,$F0F0F0F0,$70707070
- dc.l $F0F0F0F0,$F0F0F0F0,$80808080,$F0F0F0F0,$F0F0F0F0,$90909090,$F0F0F0F0,$F0F0F0F0,$A0A0A0A0,$F0F0F0F0,$F0F0F0F0,$B0B0B0B0,$F0F0F0F0,$F0F0F0F0,$C0C0C0C0,$F0F0F0F0,$F0F0F0F0,$D0D0D0D0,$F0F0F0F0,$F0F0F0F0,$E0E0E0E0,$F0F0F0F0,$F0F0F0F0,$F0F0F0F0
- dc.w 0
- flames:
- dc.l 0
- MapB:
- dc.l 0
- new_flames:
- dc.l 0
- x:
- dc.w 0
- y:
- dc.w 0
- END
-